﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace StuertzDatenbank
{
    public partial class Profilsuchegui : Form
    {
        private Sprachfile sprachfile;
        private List<Hersteller> Herstellerliste;
        private List<Serie> Serienliste;
        private List<Profil> Profilliste;
        private DBF dbf;
        private ViewControl viewcontrol;

        private List<VerwendungPosition> VerwendungPostionliste;
        private List<Werkzeug> WerkezugListe;
        private List<Werkstoff> werkstoffListe;
        public Profil profil { get; set; }
        
        
        


        public Profilsuchegui(Benutzer benutzer)
        {
            this.benutzer = benutzer;
            dbf = new DBF();
            sprachfile = new Sprachfile();
            Herstellerliste = new List<Hersteller>();
            Herstellerliste = dbf.listHersteller();
            werkstoffListe = new List<StuertzDatenbank.Werkstoff>();
            VerwendungPostionliste = new List<VerwendungPosition>();
            WerkezugListe = new List<Werkzeug>();
            Serienliste = new List<StuertzDatenbank.Serie>(dbf.listAlleProfilSerien());
            InitializeComponent();
            InitializeComponentchange();
            Refresh();
            benutzercontrolle();
            profil = new Profil(-1);
        }

        private void benutzercontrolle()
        {
            if (benutzer.getRolle().getRechte().Profileinsehen||benutzer.getRolle().getRechte().Profilbearbeiten||benutzer.getRolle().getRechte().Profilloeschen)
            {
                 this.ProfilBearbeitenbutton.Visible = true;
            }
            else
            {
                this.ProfilBearbeitenbutton.Visible = false;
            }
           
        }

        private void InitializeComponentchange()
        {

            this.Text = sprachfile.Profile;
            this.StartButton.Text = sprachfile.Start;
           
           
           
            this.AllgemeinTab.Text = sprachfile.Allgemein;
           
            this.HerstellerLabel.Text = sprachfile.Hersteller;
            this.SerieLabel.Text = sprachfile.Serie;
            this.BezeichnungLabel.Text = sprachfile.Bezeichnung;
            this.HoheLabel.Text = sprachfile.HöheAbs;
            this.TiefeLabel.Text = sprachfile.TiefeAbs;
            this.Rahmen.Text = sprachfile.Rahmen;
            this.Fenster.Text = sprachfile.Fenster;
            this.HoehEInheitLabel.Text = sprachfile.Einheit;
            this.TiefeeinheitLabel.Text = sprachfile.Einheit;
            this.KommentarLabel.Text = sprachfile.Kommentar;
            this.GraphictabPage.Text = sprachfile.Zeichnung;


            this.HerstellercomboBox.Items.Clear();

            for (int i = 0; i < Herstellerliste.Count; i++)
            {
                HerstellercomboBox.Items.Add(Herstellerliste[i].getName());
            }
            this.SeriecomboBox.Items.Clear();
            for (int i = 0; i < Serienliste.Count; i++)
			{
			 SeriecomboBox.Items.Add(Serienliste[i].getSerie());
			}

            // 
            //Viewcontrol
            // 
            this.viewcontrol = new ViewControl();
            this.viewcontrol.AutoSize = true;
            this.tableLayoutPanel2.SetColumnSpan(viewcontrol, 2);
            this.tableLayoutPanel2.SetRowSpan(viewcontrol, 2);
            this.viewcontrol.Dock = System.Windows.Forms.DockStyle.Fill;
            this.viewcontrol.Location = new System.Drawing.Point(0, 0);
            this.viewcontrol.Size = new System.Drawing.Size(190, 26);
            this.viewcontrol.TabIndex = 1;
            this.viewcontrol.Visible = true;
            this.tableLayoutPanel2.Controls.Add(this.viewcontrol, 0, 0);
           
            viewcontrol.Refresh();

            
            this.Refresh();
        }

        private void StartButton_Click(object sender, EventArgs e)
        {
            this.Visible = false;
            startgui gui = new startgui(benutzer);
            gui.ShowDialog();
        }

        private void ZurückButton_Click(object sender, EventArgs e)
        {
            this.Visible = false;
            ProfilstartGui gui = new ProfilstartGui(benutzer);
            gui.ShowDialog();
        }

        public Benutzer benutzer { get; set; }

        private void HerstellercomboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
           
            for (int i = 0; i < Herstellerliste.Count; i++)
            {
                if (HerstellercomboBox.SelectedText!=null && HerstellercomboBox.SelectedItem.ToString()==Herstellerliste[i].getName())
                {
                    SeriecomboBox.Items.Clear();
                    Serienliste.Clear();
                    Serienliste = new List<Serie>(dbf.getHerstellerserien(Herstellerliste[i]));
                }
            }

            this.SeriecomboBox.Items.Clear();
            for (int i = 0; i < Serienliste.Count; i++)
            {
                SeriecomboBox.Items.Add(Serienliste[i].getSerie());
            } 

        }

        private void ProfilcomboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            for (int i = 0; i < Profilliste.Count; i++)
            {
                if (ProfilcomboBox.SelectedText != null && ProfilcomboBox.SelectedItem.ToString()== Profilliste[i].getBezeichnung())
                {
                    this.profil = Profilliste[i];
                }
                
            }
            profil = dbf.ProfilAusgeben(profil.getID());
            profileintragen(); 
        }

        private void profileintragen()
        {
            this.textBox2.Text = profil.getHoeheAbs().ToString();
            this.textBox3.Text = profil.getTiefeAbs().ToString();
            this.FenstercheckBox.Checked =! profil.getRahmenFenster();
            this.textBox4.Text = profil.getKommentar().ToString();

            viewcontrol.Model = profil.getZeichnung();
            viewcontrol.Refresh();
        }

        private void SeriecomboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            for (int i = 0; i < Serienliste.Count; i++)
			{
			 if (SeriecomboBox.SelectedText != null && SeriecomboBox.SelectedItem.ToString()==Serienliste[i].getSerie())
	            {
                    Profilliste = dbf.getProfileBySerie(Serienliste[i]);
	            }
			}
            ProfilcomboBox.Items.Clear();
            for (int i = 0; i < Profilliste.Count; i++)
            {
                ProfilcomboBox.Items.Add(Profilliste[i].getBezeichnung());
            }
            
           
        }

        private void ProfilBearbeitenbutton_Click(object sender, EventArgs e)
        {
            Profilgui gui = new Profilgui(this.benutzer, profil);
            gui.ShowDialog();
            this.Dispose();
            
        }

        

        private void tabPage1_Click(object sender, EventArgs e)
        {
            if (profil!=null)
            {
                viewcontrol.Model = profil.getZeichnung();
                viewcontrol.Refresh();
            }
            
        }

        private void FenstercheckBox_CheckedChanged(object sender, EventArgs e)
        {
            
            this.Fenstercheckbox2.Checked = !this.FenstercheckBox.Checked;
        }
        
        

        private void Fenstercheckbox2_CheckedChanged(object sender, EventArgs e)
        {
           
            this.FenstercheckBox.Checked = !this.Fenstercheckbox2.Checked;
        }
                
    }
}
